package it.polimi.traveldream.persistence.dtos;
import java.util.LinkedList;
import java.util.List;



import org.hibernate.validator.constraints.NotEmpty;

import it.polimi.traveldream.persistence.dtos.PonteHotelPaccDTO;
import it.polimi.traveldream.persistence.dtos.HotelProdDTO;

public class PacchettoDTO implements IDable {

	private int ID;

	private boolean pubblico;

	private String descrizione;

	@NotEmpty
	private String nome;

	private String emailImpiegato;
	
	private List<HotelProdDTO> hotels;
	
	private List<PonteHotelPaccDTO> ponteHotel;
	
	private List<PonteTourPaccDTO> ponteTour;

	private List<PonteTrattaVoloDTO> ponteVolo;

	
	public PacchettoDTO(){
		this.hotels = new LinkedList<HotelProdDTO>();
		this.ponteHotel= new LinkedList<PonteHotelPaccDTO>();
		this.ponteTour= new LinkedList<PonteTourPaccDTO>();
		this.ponteVolo= new LinkedList<PonteTrattaVoloDTO>();
	}
	
	public List<PonteHotelPaccDTO> getPonteHotel(){
		return ponteHotel;
	}
	
	public void setPonteHotel(List<PonteHotelPaccDTO> ponteHotel){
		this.ponteHotel=ponteHotel;
	}

	public int getID() {
		return ID;
	}
	
	public int getIDPacchetto() {
		return ID;
	}

	public void setIDPacchetto(int iDPacchetto) {
		ID = iDPacchetto;
	}

	public boolean getPubblico() {
		return pubblico;
	}

	public void setPubblico(boolean pubblico) {
		this.pubblico = pubblico;
	}

	public String getDescrizione() {
		return descrizione;
	}

	public void setDescrizione(String descrizione) {
		this.descrizione = descrizione;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getEmailImpiegato() {
		return emailImpiegato;
	}

	public void setEmailImpiegato(String emailImpiegato) {
		this.emailImpiegato = emailImpiegato;
	}
	
	//hotel
	public void setHotels(List<HotelProdDTO> hotel){
		this.hotels= hotel;
	}
	
	public List<HotelProdDTO> getHotels(){
		return hotels;
	}
	

	//volo
	public List<PonteTrattaVoloDTO> getPonteVolo() {
		return ponteVolo;
	}

	public void setPonteVolo(List<PonteTrattaVoloDTO> ponteVolo) {
		this.ponteVolo = ponteVolo;
	}
	
	//tour
	

	public List<PonteTourPaccDTO> getPonteTour() {
		return ponteTour;
	}

	public void setPonteTour(List<PonteTourPaccDTO> ponteTour) {
		this.ponteTour = ponteTour;
	}



	@Override
	public String toString() {
		return "Pacchetto| ID: " + ID + ", Nome: " + nome + (pubblico? ", pubblico" : ", non pubblico");
	}

}
